1. Field of the Invention
This invention relates to a parallel network simulator and more particularly such a simulator for simulating data transfer between a variety of different processing sites.
2. Description of the Prior Art
Partly because of, and partly in spite of, great improvements in integrated circuit density resulting in more powerful microprocessors and also more powerful processors, more and more interest has been directed toward parallel or concurrent processing. In spite of improved integrated circuit technology which allows for more powerful and smaller data processing systems, it is generally believed that, in the future, increased data processing throughput can only be achieved through such parallel processing. On the other hand, because of the present availability of more powerful single chip microprocessors, it is much easier to build such parallel or concurrent networks of such processors with a principal limitation being the adaptability of different programming languages to such parallel execution.
Standard computer languages that have been employed for the most part up to now have been of the von Neumann or imperative type languages which are highly sequential in nature and difficult to break up into individual segments for large scale parallel processing because of the dependency of the code upon the sequence in which it resides. Such standard languages are FORTRAN and COBOL. Languages such ALGOL, which are block structured, represent at least some attempt to get away from this highly sequential nature.
Some effort has been made to segment such sequential languages or at least their object code into small sequences that can be executed in parallel or concurrently. Examples of such a method is disclosed in the DeSantis et al U.S. Pat. No. 4,468,736 which is assigned to the assignee of the present invention.
As distinct from the imperative type languages described above, which may be said to be command-driven driven, there has been a great amount of investigation into applicative languages which may be said to be demand-driven in that only those functions are evaluated as are necessary. And the languages are completely concurrent in that the respective functions can be evaluated independently of one another subject to certain constraints.
There are two basic types of such applicative languages, logical languages and functional languages. Logical languages such as PROLOG are made up of a series of expressions that are independent of one another. Functional languages such as LISP are made up of a series of statements that can be compiled into graphs that can be reduced or evaluated. Such reduction is by progressive substitutions of equivalent expressions. An example of a reduction processor for reducing a functional language is described in the Bolton et al U.S. Pat. No. 4,447,875 which is assigned to the assignee of the present invention and a network of such processors for concurrent evaluation or reduction is described in the Bolton et al U.S. Pat. No. 4,502,118 which is assigned to the assignee of the present application.
With such languages that are made up of a series of independent expressions or statements, it then becomes very natural to adapt parallel networks for the concurrent or parallel evaluation of such languages. However, it is not the intention of the present invention to be limited to applicative languages and as was pointed out above in regard to the DeSantis et al patent, conventional and imperative languages can also be adapted for parallel execution by large parallel networks.
Because of the great variety of different languages that can be adapted to different networks for parallel execution, the individual networks should be configured to take advantage of the particular languages and types of sequences being executed.
It is, therefore, an object of the present invention to provide an improved parallel network simulator for the purpose of evaluating different network configurations.
It is another object of the present invention to provide an improved network simulator for the simulation of networks of any degree of connection between processing sites.
It is still a further object of the present invention to provide such a parallel network simulator wherein the networks being simulated are loosely coupled so that the simulator can readily be changed by the programmer to simulate other types of networks.